package com.itlong.cloud.operate.dao;

import com.itlong.cloud.POJO.VO.operate.OperatePlanManageInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      运营-固件升级-设备升级操作数据接口。
 * <desc/>
 *
 * @createDate 2018/08/27.
 */
@Mapper
@Repository
public interface IOperatePlanManageDao {

     /**
      * <desc>
      *      分页获取设备方案信息。
      * <desc/>
      *
      * @param  params
      * @return
      * @author Qiang.S
      * @createDate 2018/11/05
      */
    List<OperatePlanManageInfoVO> getPlanInfoPage(Map<String, Object> params);

    /**
     * <desc>
     *      获取设备方案信息结果总记录数。
     * <desc/>
     *
     * @param params
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer getPlanInfoCount(Map<String, Object> params);

    /**
     * <desc>
     *      判断方案名称是否重复。
     * <desc/>
     *
     * @param planName 方案名称
     * @param planId 方案编号
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer checkPlanName(@Param("planName") String planName, @Param("planId") String planId);

    /**
     * <desc>
     *      保存设备方案
     * <desc/>
     *
     * @param params
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer save(Map<String, Object> params);

    /**
     * <desc>
     *      更新设备方案。
     * <desc/>
     *
     * @param planName 方案名称
     * @param planId 方案编号
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer update(@Param("planName") String planName, @Param("planId") String planId);

    /**
     * <desc>
     *      删除设备方案。
     * <desc/>
     *
     * @param planId 方案编号
     * @return
     * @author Qiang.S
     * @createDate 2018/11/05
     */
    Integer delete(String planId);

    /**
     * <desc>
     *      根据方案编号获取名称
     * <desc/>
     *
     * @param planId 方案编号
     * @return
     * @author Qiang.S
     * @createDate 2018-09-25
     */
    OperatePlanManageInfoVO getDetail(String planId);

}
